﻿using System.Threading;
using System.Threading.Tasks;
using K9Nano.LayIM.Events;
using K9Nano.LayIM.Models;

namespace K9Nano.LayIM
{
    public interface IChatManager
    {
        Task OnlineAsync(OnlineNotification online, CancellationToken cancellation);
        Task OfflineAsync(OfflineNotification offline, CancellationToken cancellation);
        Task AddFriendAsync(string userId, string friendId, string groupId, CancellationToken cancellation);

        Task<LayIMUser> GetUserAsync(string userId, CancellationToken cancellation);
        
        Task<LayIMChatRoom> GetRoomAsync(string app, string userId, CancellationToken cancellation);
    }
}